package turritopsis

import (
    "adkr/pkg/adkr"
)

// ComposeConfig builds a Turritopsis Config from decoupled parts:
// - acs: any ACS implementation (e.g., sDumbo) exposed as ACSFunc
// - kr:  optional key-refresh trigger (e.g., ADKR single round) exposed as KeyRefreshFunc
// - epochs/n/f/pid/sid: basic runtime parameters
// - base: optional ADKRHighConfig template retained on Config for downstream usage
// This function does not assume any import dependency on sDumbo internals.
func ComposeConfig(
    sid string,
    pid int,
    n int,
    f int,
    epochs int,
    acs ACSFunc,
    kr KeyRefreshFunc,
    base adkr.ADKRHighConfig,
) Config {
    cfg := Defaults()
    cfg.SID = sid
    cfg.PID = pid
    cfg.N = n
    cfg.F = f
    cfg.Epochs = epochs
    cfg.ACS = acs
    cfg.KeyRefreshOne = kr
    cfg.ADKR = base
    return cfg
}





